// >	【内容扩展】发送ajax请求
// >	1. 封装功能函数
//  		1. 功能点明确
// 		2. 函数内部应该保留固定代码（静态的）
// 		3. 将动态的数据抽取成形参，由使用者根据自身的情况动态传入实参。
// 		4. 一个良好的功能函数应该设置形参的默认值。
// >	2. 封装功能组件
// 		1. 功能点明确
// 		2. 组件内部保留静态的代码
// 		3. 将动态的数据抽取成props参数，由使用者根据自身情况以标签属性的形式动态传入props数据。
// 		4. 一个良好的组件应该设置组件的必要性及数据类型。
import apiConfig from './apiConfig'
const items = {}
const BASE_URL = apiConfig.host
// 发送ajax请求
items.request = (url, data = {}, method = "GET") => {
  // new Promise 初始化promise实例的状态为 pending
  return new Promise((resolve, reject) => {
    wx.request({ // 这个是异步执行非阻塞
      url: BASE_URL + url,
      data,
      method,
      header: {
        cookie: wx.getStorageSync('cookies')?wx.getStorageSync('cookies').find(item => item.indexOf('MUSIC_U') > -1):''
      },
      success: res => {
        // 判断是否是登录请求
        if (data.isLogin) {
          // 将用户的cookie存入本地
          wx.setStorage({
            data: res.cookies,
            key: 'cookies',
          })
        }
        resolve(res.data) // resolve 修改promise的状态为成功状态
      },
      fail: err => {
        reject(err) // reject 修改promise的状态为 失败状态
      }
    })
  })
}

export default items